
        <html>
			<head>
			     <title>Bashlite恶意软件阴魂未散:智能设备面临新考验 - 360安全卫士</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/9990">http://drops.wooyun.org/papers/9990</a></h1>
				
      <p>
        <h1>0x01 概况</h1>

<hr />

<p>早在2014年，Shell Shock（CVE-2014-6721）便作为一个高达10级的漏洞受到极大的关注，而利用Shell Shock疯狂作案的Bashlite恶意软件在当时已对不少设备造成了威胁，这其中包括了路由器、手机、可穿戴设备等。近日，360 QVM团队又捕获了该恶意程序的最新变种，并追踪到了相关多个平台的恶意程序，相比老版的bashlite，新版支持的平台更多，且成功率更高，多种智能设备将受到Bashlite恶意软件影响。</p>

<h1>0x02 样本分析</h1>

<hr />

<!--more-->

<p>该版本一共有25个文件，其中包括一个shell脚本文件和24个elf文件，支持不同架构的设备，如下表：</p>

<table border="1">
  <tr>
    <td>
      文件名
    </td>
    
    <td>
      文件类型
    </td>
  </tr>
  
  <tr>
    <td>
      lnta
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntb
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1, dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntc
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntd
    </td>
    
    <td>
      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lnte
    </td>
    
    <td>
      ELF 32-bit MSB executable, Motorola 68020, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntf
    </td>
    
    <td>
      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntg
    </td>
    
    <td>
      ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lnth
    </td>
    
    <td>
      ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lnti
    </td>
    
    <td>
      ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntj
    </td>
    
    <td>
      ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntk
    </td>
    
    <td>
      ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      lntl
    </td>
    
    <td>
      ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      nt.sh
    </td>
    
    <td>
      POSIX shell script text executable
    </td>
  </tr>
  
  <tr>
    <td>
      slnta
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1, statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntb
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1, statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntc
    </td>
    
    <td>
      ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntd
    </td>
    
    <td>
      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slnte
    </td>
    
    <td>
      ELF 32-bit MSB executable, Motorola 68020, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntf
    </td>
    
    <td>
      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntg
    </td>
    
    <td>
      ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slnth
    </td>
    
    <td>
      ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slnti
    </td>
    
    <td>
      ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntj
    </td>
    
    <td>
      ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntk
    </td>
    
    <td>
      ELF 32-bit LSB executable, Renesas SH, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
  
  <tr>
    <td>
      slntl
    </td>
    
    <td>
      ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
    </td>
  </tr>
</table>

<p>文件名：nt.sh<br />
文件大小：21.9kb<br />
MD5: c14761119affea9569dd248a0c78d0b4</p>

<p>该程序可用于更新作者本身写的程序，也用于将已感染bashlite的主机占为己有，我们来看看它的主要功能：</p>

<p>先清除了老版本使用的配置文件，并杀掉了老版本的进程；</p>

<p><img src="http://static.wooyun.org//drops/20151027/20151027031608447761103.png" alt="" /></p>

<p>下载并并运行最新的恶意程序，这里使用了curl、lynx、wget等多种方式下载，确保下载成功；</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703172022287250.png" alt="" /></p>

<p>当确认与服务端建立连接后则停止。</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703173563790330.png" alt="" /></p>

<p>其它文件：</p>

<p>其它文件完成了主要的恶意功能，不同文件为不同平台所打造，但功能都是类似的，以80386平台为例，我们来看看slntd的主要功能：</p>

<p>先简单的strace一下该程序：</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703180440197424.png" alt="" /></p>

<p>可以看到该程序先设置了线程名，随后连接了8.8.8.8，然后读取了路由表，之后的操作都是由几个线程完成，我们详细的跟一下：</p>

<p>1.使用prctl修改线程名为[cpuset]</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703185568777520.png" alt="" /></p>

<p>2.连接8.8.8.8来判断用户是否已连接到网络，若连接到网络则通过路由表来获得ip地址并得到设备名称，再由ioctl得到mac地址：</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703190373102619.png" alt="" /></p>

<p>3.连接C&amp;C地址(162.248.79.66)</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703190720766721.png" alt="" /></p>

<p>简单对该地址扫描，发现其开放了21,22端口，我们尝试着访问一下：</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703191464147823.png" alt="" /></p>

<p>可以看到上面有作者用于交叉编译的工具和脚本，还有已生成好的bot文件，从nt2.sh可以看到有新的地址188.209.49.163:443，而且底部有<em>Generated Mon, 26 Oct 2015 10:38:23 GMT by proxy (squid/3.1.23)</em>，由此可见作者可能已经拥有了大量的肉鸡，已经必须使用squid来承受并发的压力，当然也有可能仅仅是为了隐藏自己。</p>

<p>4.接受远程发来的指令，与老版本相似，支持一下几种指令：</p>

<table border="1">
  <tr>
    <td>
      指令
    </td>
    
    <td>
      功能
    </td>
  </tr>
  
  <tr>
    <td>
      PING
    </td>
    
    <td>
      给服务端发送"PONG!",应为上线提示功能
    </td>
  </tr>
  
  <tr>
    <td>
      GETLOCALIP
    </td>
    
    <td>
      给服务端发送本机IP
    </td>
  </tr>
  
  <tr>
    <td>
      SCANNER
    </td>
    
    <td>
      执行StartTheLelz函数,随机生成IP地址，并尝试使用弱口令连接去感染更多主机
    </td>
  </tr>
  
  <tr>
    <td>
      HOLD,JUNK,UDP,TCP
    </td>
    
    <td>
      针对远程发来的IP和不同攻击指令，对目标主机发动DOS攻击
    </td>
  </tr>
  
  <tr>
    <td>
      KILLATTK
    </td>
    
    <td>
      终止所有攻击
    </td>
  </tr>
  
  <tr>
    <td>
      LOLNOGTFO
    </td>
    
    <td>
      卸载
    </td>
  </tr>
</table>

<p>值得一提的是SCANNER指令，执行该指令时会尝试连接大量的随机地址，占用资源明显。</p>

<p><img src="http://static.wooyun.org//drops/20151027/2015102703192445232920.png" alt="" /></p>

<p>若主机存在，则尝试使用telnet方式感染主机，被感染后的主机仍可以继续寻找其它可被感染的目标。</p>

<p><img src="http://static.wooyun.org//drops/20151027/20151027031933615201019.png" alt="" /></p>

<h1>0x03 总结</h1>

<hr />

<p>Bashlite危害较大，其新版本不光会影响到设备的性能，占用大量网络资源，还有可能会造成隐私泄露等危害，360QVM小组提醒各智能设备厂商做好防范措施，固件使用高版本的BASH，且不要使用弱口令作为验证手段。管理员们要时刻注意主机的异常进程和网络流量情况。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          